home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / More Source / C⁄C++ / picture / trans.h < prev    next >
Text File  |  1993-09-23  |  2KB  |  85 lines

  1. //    Copyright 1993 Ralph Gonzalez
  2.  
  3. /*
  4. *    FILE:        trans.h
  5. *    AUTHOR:        R. Gonzalez
  6. *    CREATED:    October 3, 1990
  7. *
  8. *    Defines 3D transformation (using trans. matrix) for picture
  9. *    application.
  10. */
  11.  
  12. # ifndef    trans_h
  13. # define    trans_h
  14.  
  15. # include    "class.h"
  16. # define    PI        3.1415926
  17.  
  18. /******************************************************************
  19. *   abstract transformation
  20. ******************************************************************/
  21. class    Transformation:public Generic_Class
  22. {
  23. public:
  24.     double            m[4][4];
  25.     
  26.     Transformation(void);
  27.     virtual void    combine(Transformation*,Transformation*);
  28.     virtual void    equate(Transformation*);
  29. };
  30.  
  31. /******************************************************************
  32. *   translation
  33. ******************************************************************/
  34. class    Translation:public Transformation
  35. {
  36. public:
  37.     virtual void    set(double,double,double);
  38. };
  39.  
  40. /******************************************************************
  41. *   scaling
  42. ******************************************************************/
  43. class    Scaling:public Transformation
  44. {
  45. public:
  46.     virtual void    set(double,double,double);
  47. };
  48.  
  49. /******************************************************************
  50. *   rotation about x
  51. ******************************************************************/
  52. class    Rotation_X:public Transformation
  53. {
  54. public:
  55.     virtual void    set(double);
  56. };
  57.  
  58. /******************************************************************
  59. *   rotation about y
  60. ******************************************************************/
  61. class    Rotation_Y:public Transformation
  62. {
  63. public:
  64.     virtual void    set(double);
  65. };
  66.  
  67. /******************************************************************
  68. *   rotation about z
  69. ******************************************************************/
  70. class    Rotation_Z:public Transformation
  71. {
  72. public:
  73.     virtual void    set(double);
  74. };
  75.  
  76. /******************************************************************
  77. *   convert from world to camera coordinates
  78. ******************************************************************/
  79. class    World_To_Camera:public Transformation
  80. {
  81. public:
  82.     virtual void    set(double,double,double,double,double,double);
  83. };
  84.  
  85. # endif